
-- --------------------------------------------------
-- Entity Designer DDL Script for SQL Server 2005, 2008, and Azure
-- --------------------------------------------------
-- Date Created: 04/28/2013 20:58:13
-- Generated from EDMX file: C:\Users\Xtian\Documents\Visual Studio 2010\ProjectSVN\GuiaGastronomica\GuiaGastronomica\GGastro.edmx
-- --------------------------------------------------

SET QUOTED_IDENTIFIER OFF;
GO
USE [GGastro];
GO
IF SCHEMA_ID(N'GGastro') IS NULL EXECUTE(N'CREATE SCHEMA [GGastro]');
GO

-- --------------------------------------------------
-- Dropping existing FOREIGN KEY constraints
-- --------------------------------------------------

IF OBJECT_ID(N'[GGastro].[FK_ServicioXRestaurante_Restaurante]', 'F') IS NOT NULL
    ALTER TABLE [GGastro].[ServicioXRestaurante] DROP CONSTRAINT [FK_ServicioXRestaurante_Restaurante];
GO
IF OBJECT_ID(N'[GGastro].[FK_ServicioXRestaurante_Servicio]', 'F') IS NOT NULL
    ALTER TABLE [GGastro].[ServicioXRestaurante] DROP CONSTRAINT [FK_ServicioXRestaurante_Servicio];
GO
IF OBJECT_ID(N'[GGastro].[FK_RestauranteCiudad]', 'F') IS NOT NULL
    ALTER TABLE [GGastro].[Usuario_Restaurante] DROP CONSTRAINT [FK_RestauranteCiudad];
GO
IF OBJECT_ID(N'[GGastro].[FK_CiudadZona]', 'F') IS NOT NULL
    ALTER TABLE [GGastro].[Zona] DROP CONSTRAINT [FK_CiudadZona];
GO
IF OBJECT_ID(N'[GGastro].[FK_TipoCocinaXRestaurante_TipoCocina]', 'F') IS NOT NULL
    ALTER TABLE [GGastro].[TipoCocinaXRestaurante] DROP CONSTRAINT [FK_TipoCocinaXRestaurante_TipoCocina];
GO
IF OBJECT_ID(N'[GGastro].[FK_TipoCocinaXRestaurante_Restaurante]', 'F') IS NOT NULL
    ALTER TABLE [GGastro].[TipoCocinaXRestaurante] DROP CONSTRAINT [FK_TipoCocinaXRestaurante_Restaurante];
GO
IF OBJECT_ID(N'[GGastro].[FK_MedioPagoXRestaurante_MedioPago]', 'F') IS NOT NULL
    ALTER TABLE [GGastro].[MedioPagoXRestaurante] DROP CONSTRAINT [FK_MedioPagoXRestaurante_MedioPago];
GO
IF OBJECT_ID(N'[GGastro].[FK_MedioPagoXRestaurante_Restaurante]', 'F') IS NOT NULL
    ALTER TABLE [GGastro].[MedioPagoXRestaurante] DROP CONSTRAINT [FK_MedioPagoXRestaurante_Restaurante];
GO
IF OBJECT_ID(N'[GGastro].[FK_RestauranteTipoLocal]', 'F') IS NOT NULL
    ALTER TABLE [GGastro].[Usuario_Restaurante] DROP CONSTRAINT [FK_RestauranteTipoLocal];
GO
IF OBJECT_ID(N'[GGastro].[FK_CriticaEstado]', 'F') IS NOT NULL
    ALTER TABLE [GGastro].[Critica] DROP CONSTRAINT [FK_CriticaEstado];
GO
IF OBJECT_ID(N'[GGastro].[FK_UsuarioEstado]', 'F') IS NOT NULL
    ALTER TABLE [GGastro].[Usuario] DROP CONSTRAINT [FK_UsuarioEstado];
GO
IF OBJECT_ID(N'[GGastro].[FK_UsuarioConsumidorCritica]', 'F') IS NOT NULL
    ALTER TABLE [GGastro].[Critica] DROP CONSTRAINT [FK_UsuarioConsumidorCritica];
GO
IF OBJECT_ID(N'[GGastro].[FK_RestauranteSolicitud]', 'F') IS NOT NULL
    ALTER TABLE [GGastro].[Usuario_Restaurante] DROP CONSTRAINT [FK_RestauranteSolicitud];
GO
IF OBJECT_ID(N'[GGastro].[FK_SolicitudEstado]', 'F') IS NOT NULL
    ALTER TABLE [GGastro].[Solicitud] DROP CONSTRAINT [FK_SolicitudEstado];
GO
IF OBJECT_ID(N'[GGastro].[FK_QuejaRestaurante]', 'F') IS NOT NULL
    ALTER TABLE [GGastro].[Queja] DROP CONSTRAINT [FK_QuejaRestaurante];
GO
IF OBJECT_ID(N'[GGastro].[FK_CriticaQueja]', 'F') IS NOT NULL
    ALTER TABLE [GGastro].[Critica] DROP CONSTRAINT [FK_CriticaQueja];
GO
IF OBJECT_ID(N'[GGastro].[FK_QuejaEstado]', 'F') IS NOT NULL
    ALTER TABLE [GGastro].[Queja] DROP CONSTRAINT [FK_QuejaEstado];
GO
IF OBJECT_ID(N'[GGastro].[FK_PerfilPrivilegio_Perfil]', 'F') IS NOT NULL
    ALTER TABLE [GGastro].[PerfilPrivilegio] DROP CONSTRAINT [FK_PerfilPrivilegio_Perfil];
GO
IF OBJECT_ID(N'[GGastro].[FK_PerfilPrivilegio_Privilegio]', 'F') IS NOT NULL
    ALTER TABLE [GGastro].[PerfilPrivilegio] DROP CONSTRAINT [FK_PerfilPrivilegio_Privilegio];
GO
IF OBJECT_ID(N'[GGastro].[FK_UsuarioAdministradorPerfil]', 'F') IS NOT NULL
    ALTER TABLE [GGastro].[Usuario_UsuarioAdministrador] DROP CONSTRAINT [FK_UsuarioAdministradorPerfil];
GO
IF OBJECT_ID(N'[GGastro].[FK_Restaurante_inherits_Usuario]', 'F') IS NOT NULL
    ALTER TABLE [GGastro].[Usuario_Restaurante] DROP CONSTRAINT [FK_Restaurante_inherits_Usuario];
GO
IF OBJECT_ID(N'[GGastro].[FK_UsuarioConsumidor_inherits_Usuario]', 'F') IS NOT NULL
    ALTER TABLE [GGastro].[Usuario_UsuarioConsumidor] DROP CONSTRAINT [FK_UsuarioConsumidor_inherits_Usuario];
GO
IF OBJECT_ID(N'[GGastro].[FK_UsuarioAdministrador_inherits_Usuario]', 'F') IS NOT NULL
    ALTER TABLE [GGastro].[Usuario_UsuarioAdministrador] DROP CONSTRAINT [FK_UsuarioAdministrador_inherits_Usuario];
GO

-- --------------------------------------------------
-- Dropping existing tables
-- --------------------------------------------------

IF OBJECT_ID(N'[GGastro].[Servicio]', 'U') IS NOT NULL
    DROP TABLE [GGastro].[Servicio];
GO
IF OBJECT_ID(N'[GGastro].[Estado]', 'U') IS NOT NULL
    DROP TABLE [GGastro].[Estado];
GO
IF OBJECT_ID(N'[GGastro].[Zona]', 'U') IS NOT NULL
    DROP TABLE [GGastro].[Zona];
GO
IF OBJECT_ID(N'[GGastro].[Ciudad]', 'U') IS NOT NULL
    DROP TABLE [GGastro].[Ciudad];
GO
IF OBJECT_ID(N'[GGastro].[TipoCocina]', 'U') IS NOT NULL
    DROP TABLE [GGastro].[TipoCocina];
GO
IF OBJECT_ID(N'[GGastro].[MedioPago]', 'U') IS NOT NULL
    DROP TABLE [GGastro].[MedioPago];
GO
IF OBJECT_ID(N'[GGastro].[TipoLocal]', 'U') IS NOT NULL
    DROP TABLE [GGastro].[TipoLocal];
GO
IF OBJECT_ID(N'[GGastro].[Critica]', 'U') IS NOT NULL
    DROP TABLE [GGastro].[Critica];
GO
IF OBJECT_ID(N'[GGastro].[Usuario]', 'U') IS NOT NULL
    DROP TABLE [GGastro].[Usuario];
GO
IF OBJECT_ID(N'[GGastro].[Solicitud]', 'U') IS NOT NULL
    DROP TABLE [GGastro].[Solicitud];
GO
IF OBJECT_ID(N'[GGastro].[Queja]', 'U') IS NOT NULL
    DROP TABLE [GGastro].[Queja];
GO
IF OBJECT_ID(N'[GGastro].[PerfilEstablecer]', 'U') IS NOT NULL
    DROP TABLE [GGastro].[PerfilEstablecer];
GO
IF OBJECT_ID(N'[GGastro].[PrivilegioEstablecer]', 'U') IS NOT NULL
    DROP TABLE [GGastro].[PrivilegioEstablecer];
GO
IF OBJECT_ID(N'[GGastro].[Usuario_Restaurante]', 'U') IS NOT NULL
    DROP TABLE [GGastro].[Usuario_Restaurante];
GO
IF OBJECT_ID(N'[GGastro].[Usuario_UsuarioConsumidor]', 'U') IS NOT NULL
    DROP TABLE [GGastro].[Usuario_UsuarioConsumidor];
GO
IF OBJECT_ID(N'[GGastro].[Usuario_UsuarioAdministrador]', 'U') IS NOT NULL
    DROP TABLE [GGastro].[Usuario_UsuarioAdministrador];
GO
IF OBJECT_ID(N'[GGastro].[ServicioXRestaurante]', 'U') IS NOT NULL
    DROP TABLE [GGastro].[ServicioXRestaurante];
GO
IF OBJECT_ID(N'[GGastro].[TipoCocinaXRestaurante]', 'U') IS NOT NULL
    DROP TABLE [GGastro].[TipoCocinaXRestaurante];
GO
IF OBJECT_ID(N'[GGastro].[MedioPagoXRestaurante]', 'U') IS NOT NULL
    DROP TABLE [GGastro].[MedioPagoXRestaurante];
GO
IF OBJECT_ID(N'[GGastro].[PerfilPrivilegio]', 'U') IS NOT NULL
    DROP TABLE [GGastro].[PerfilPrivilegio];
GO

-- --------------------------------------------------
-- Creating all tables
-- --------------------------------------------------

-- Creating table 'Servicio'
CREATE TABLE [GGastro].[Servicio] (
    [servicio_id] int IDENTITY(1,1) NOT NULL,
    [nombre] nvarchar(max)  NOT NULL
);
GO

-- Creating table 'Estado'
CREATE TABLE [GGastro].[Estado] (
    [estado_id] int IDENTITY(1,1) NOT NULL,
    [descripcion] nvarchar(max)  NOT NULL,
    [tipo] nvarchar(max)  NOT NULL
);
GO

-- Creating table 'Zona'
CREATE TABLE [GGastro].[Zona] (
    [zona_id] int IDENTITY(1,1) NOT NULL,
    [nombre] nvarchar(max)  NOT NULL,
    [ciudad_id] int  NOT NULL
);
GO

-- Creating table 'Ciudad'
CREATE TABLE [GGastro].[Ciudad] (
    [ciudad_id] int IDENTITY(1,1) NOT NULL,
    [nombre] nvarchar(max)  NOT NULL
);
GO

-- Creating table 'TipoCocina'
CREATE TABLE [GGastro].[TipoCocina] (
    [tipoCocina_id] int IDENTITY(1,1) NOT NULL,
    [nombre] nvarchar(max)  NOT NULL
);
GO

-- Creating table 'MedioPago'
CREATE TABLE [GGastro].[MedioPago] (
    [medioPago_id] int IDENTITY(1,1) NOT NULL,
    [nombre] nvarchar(max)  NOT NULL
);
GO

-- Creating table 'TipoLocal'
CREATE TABLE [GGastro].[TipoLocal] (
    [tipoLocal_id] int IDENTITY(1,1) NOT NULL,
    [nombre] nvarchar(max)  NOT NULL
);
GO

-- Creating table 'Critica'
CREATE TABLE [GGastro].[Critica] (
    [critica_id] int IDENTITY(1,1) NOT NULL,
    [valor_comida] nvarchar(max)  NOT NULL,
    [valor_ambiente] nvarchar(max)  NOT NULL,
    [valor_servicio] nvarchar(max)  NOT NULL,
    [precio] nvarchar(max)  NOT NULL,
    [fecha] nvarchar(max)  NOT NULL,
    [estado_id] int  NOT NULL,
    [comentario] nvarchar(max)  NOT NULL,
    [usuario_id] int  NOT NULL,
    [Queja_queja_id] int  NOT NULL
);
GO

-- Creating table 'Usuario'
CREATE TABLE [GGastro].[Usuario] (
    [usuario_id] int IDENTITY(1,1) NOT NULL,
    [contrasenha] nvarchar(max)  NOT NULL,
    [estado_id] int  NOT NULL,
    [fecha] nvarchar(max)  NOT NULL
);
GO

-- Creating table 'Solicitud'
CREATE TABLE [GGastro].[Solicitud] (
    [solicitud_id] int IDENTITY(1,1) NOT NULL,
    [fecha] nvarchar(max)  NOT NULL,
    [estado_id] int  NOT NULL,
    [justificacion] nvarchar(max)  NOT NULL
);
GO

-- Creating table 'Queja'
CREATE TABLE [GGastro].[Queja] (
    [queja_id] int IDENTITY(1,1) NOT NULL,
    [descripcion] nvarchar(max)  NOT NULL,
    [fecha] nvarchar(max)  NOT NULL,
    [usuario_id] int  NOT NULL,
    [justificacion] int  NOT NULL
);
GO

-- Creating table 'PerfilEstablecer'
CREATE TABLE [GGastro].[PerfilEstablecer] (
    [perfil_id] int IDENTITY(1,1) NOT NULL,
    [descripcion] nvarchar(max)  NOT NULL
);
GO

-- Creating table 'PrivilegioEstablecer'
CREATE TABLE [GGastro].[PrivilegioEstablecer] (
    [privilegio_id] int IDENTITY(1,1) NOT NULL,
    [descripcion] nvarchar(max)  NOT NULL
);
GO

-- Creating table 'Usuario_Restaurante'
CREATE TABLE [GGastro].[Usuario_Restaurante] (
    [nombre] nvarchar(max)  NOT NULL,
    [direccion] nvarchar(max)  NOT NULL,
    [telefono] nvarchar(max)  NOT NULL,
    [fecha_apertura] nvarchar(max)  NOT NULL,
    [longitud] nvarchar(max)  NOT NULL,
    [latitud] nvarchar(max)  NOT NULL,
    [contacto_nombre] nvarchar(max)  NOT NULL,
    [contacto_email] nvarchar(max)  NOT NULL,
    [horario_dia_inicial] nvarchar(max)  NOT NULL,
    [horario_dia_final] nvarchar(max)  NOT NULL,
    [horario_hora_inicial] nvarchar(max)  NOT NULL,
    [horario_hora_final] nvarchar(max)  NOT NULL,
    [ciudad_id] int  NOT NULL,
    [tipoLocal_id] int  NOT NULL,
    [valor_comida] nvarchar(max)  NOT NULL,
    [valor_servicio] nvarchar(max)  NOT NULL,
    [valor_ambiente] nvarchar(max)  NOT NULL,
    [precio_promedio] nvarchar(max)  NOT NULL,
    [cant_criticas] nvarchar(max)  NOT NULL,
    [usuario_id] int  NOT NULL,
    [Solicitud_solicitud_id] int  NOT NULL
);
GO

-- Creating table 'Usuario_UsuarioConsumidor'
CREATE TABLE [GGastro].[Usuario_UsuarioConsumidor] (
    [nombre] nvarchar(max)  NOT NULL,
    [apellidos] nvarchar(max)  NOT NULL,
    [cant_criticas] nvarchar(max)  NOT NULL,
    [usuario_id] int  NOT NULL
);
GO

-- Creating table 'Usuario_UsuarioAdministrador'
CREATE TABLE [GGastro].[Usuario_UsuarioAdministrador] (
    [nombre] int IDENTITY(1,1) NOT NULL,
    [apellidos] nvarchar(max)  NOT NULL,
    [perfil_id] int  NOT NULL,
    [usuario_id] int  NOT NULL
);
GO

-- Creating table 'ServicioXRestaurante'
CREATE TABLE [GGastro].[ServicioXRestaurante] (
    [Restaurante_usuario_id] int  NOT NULL,
    [Servicio_servicio_id] int  NOT NULL
);
GO

-- Creating table 'TipoCocinaXRestaurante'
CREATE TABLE [GGastro].[TipoCocinaXRestaurante] (
    [TipoCocina_tipoCocina_id] int  NOT NULL,
    [Restaurante_usuario_id] int  NOT NULL
);
GO

-- Creating table 'MedioPagoXRestaurante'
CREATE TABLE [GGastro].[MedioPagoXRestaurante] (
    [MedioPago_medioPago_id] int  NOT NULL,
    [Restaurante_usuario_id] int  NOT NULL
);
GO

-- Creating table 'PerfilPrivilegio'
CREATE TABLE [GGastro].[PerfilPrivilegio] (
    [Perfil_perfil_id] int  NOT NULL,
    [Privilegio_privilegio_id] int  NOT NULL
);
GO

-- --------------------------------------------------
-- Creating all PRIMARY KEY constraints
-- --------------------------------------------------

-- Creating primary key on [servicio_id] in table 'Servicio'
ALTER TABLE [GGastro].[Servicio]
ADD CONSTRAINT [PK_Servicio]
    PRIMARY KEY CLUSTERED ([servicio_id] ASC);
GO

-- Creating primary key on [estado_id] in table 'Estado'
ALTER TABLE [GGastro].[Estado]
ADD CONSTRAINT [PK_Estado]
    PRIMARY KEY CLUSTERED ([estado_id] ASC);
GO

-- Creating primary key on [zona_id] in table 'Zona'
ALTER TABLE [GGastro].[Zona]
ADD CONSTRAINT [PK_Zona]
    PRIMARY KEY CLUSTERED ([zona_id] ASC);
GO

-- Creating primary key on [ciudad_id] in table 'Ciudad'
ALTER TABLE [GGastro].[Ciudad]
ADD CONSTRAINT [PK_Ciudad]
    PRIMARY KEY CLUSTERED ([ciudad_id] ASC);
GO

-- Creating primary key on [tipoCocina_id] in table 'TipoCocina'
ALTER TABLE [GGastro].[TipoCocina]
ADD CONSTRAINT [PK_TipoCocina]
    PRIMARY KEY CLUSTERED ([tipoCocina_id] ASC);
GO

-- Creating primary key on [medioPago_id] in table 'MedioPago'
ALTER TABLE [GGastro].[MedioPago]
ADD CONSTRAINT [PK_MedioPago]
    PRIMARY KEY CLUSTERED ([medioPago_id] ASC);
GO

-- Creating primary key on [tipoLocal_id] in table 'TipoLocal'
ALTER TABLE [GGastro].[TipoLocal]
ADD CONSTRAINT [PK_TipoLocal]
    PRIMARY KEY CLUSTERED ([tipoLocal_id] ASC);
GO

-- Creating primary key on [critica_id] in table 'Critica'
ALTER TABLE [GGastro].[Critica]
ADD CONSTRAINT [PK_Critica]
    PRIMARY KEY CLUSTERED ([critica_id] ASC);
GO

-- Creating primary key on [usuario_id] in table 'Usuario'
ALTER TABLE [GGastro].[Usuario]
ADD CONSTRAINT [PK_Usuario]
    PRIMARY KEY CLUSTERED ([usuario_id] ASC);
GO

-- Creating primary key on [solicitud_id] in table 'Solicitud'
ALTER TABLE [GGastro].[Solicitud]
ADD CONSTRAINT [PK_Solicitud]
    PRIMARY KEY CLUSTERED ([solicitud_id] ASC);
GO

-- Creating primary key on [queja_id] in table 'Queja'
ALTER TABLE [GGastro].[Queja]
ADD CONSTRAINT [PK_Queja]
    PRIMARY KEY CLUSTERED ([queja_id] ASC);
GO

-- Creating primary key on [perfil_id] in table 'PerfilEstablecer'
ALTER TABLE [GGastro].[PerfilEstablecer]
ADD CONSTRAINT [PK_PerfilEstablecer]
    PRIMARY KEY CLUSTERED ([perfil_id] ASC);
GO

-- Creating primary key on [privilegio_id] in table 'PrivilegioEstablecer'
ALTER TABLE [GGastro].[PrivilegioEstablecer]
ADD CONSTRAINT [PK_PrivilegioEstablecer]
    PRIMARY KEY CLUSTERED ([privilegio_id] ASC);
GO

-- Creating primary key on [usuario_id] in table 'Usuario_Restaurante'
ALTER TABLE [GGastro].[Usuario_Restaurante]
ADD CONSTRAINT [PK_Usuario_Restaurante]
    PRIMARY KEY CLUSTERED ([usuario_id] ASC);
GO

-- Creating primary key on [usuario_id] in table 'Usuario_UsuarioConsumidor'
ALTER TABLE [GGastro].[Usuario_UsuarioConsumidor]
ADD CONSTRAINT [PK_Usuario_UsuarioConsumidor]
    PRIMARY KEY CLUSTERED ([usuario_id] ASC);
GO

-- Creating primary key on [usuario_id] in table 'Usuario_UsuarioAdministrador'
ALTER TABLE [GGastro].[Usuario_UsuarioAdministrador]
ADD CONSTRAINT [PK_Usuario_UsuarioAdministrador]
    PRIMARY KEY CLUSTERED ([usuario_id] ASC);
GO

-- Creating primary key on [Restaurante_usuario_id], [Servicio_servicio_id] in table 'ServicioXRestaurante'
ALTER TABLE [GGastro].[ServicioXRestaurante]
ADD CONSTRAINT [PK_ServicioXRestaurante]
    PRIMARY KEY NONCLUSTERED ([Restaurante_usuario_id], [Servicio_servicio_id] ASC);
GO

-- Creating primary key on [TipoCocina_tipoCocina_id], [Restaurante_usuario_id] in table 'TipoCocinaXRestaurante'
ALTER TABLE [GGastro].[TipoCocinaXRestaurante]
ADD CONSTRAINT [PK_TipoCocinaXRestaurante]
    PRIMARY KEY NONCLUSTERED ([TipoCocina_tipoCocina_id], [Restaurante_usuario_id] ASC);
GO

-- Creating primary key on [MedioPago_medioPago_id], [Restaurante_usuario_id] in table 'MedioPagoXRestaurante'
ALTER TABLE [GGastro].[MedioPagoXRestaurante]
ADD CONSTRAINT [PK_MedioPagoXRestaurante]
    PRIMARY KEY NONCLUSTERED ([MedioPago_medioPago_id], [Restaurante_usuario_id] ASC);
GO

-- Creating primary key on [Perfil_perfil_id], [Privilegio_privilegio_id] in table 'PerfilPrivilegio'
ALTER TABLE [GGastro].[PerfilPrivilegio]
ADD CONSTRAINT [PK_PerfilPrivilegio]
    PRIMARY KEY NONCLUSTERED ([Perfil_perfil_id], [Privilegio_privilegio_id] ASC);
GO

-- --------------------------------------------------
-- Creating all FOREIGN KEY constraints
-- --------------------------------------------------

-- Creating foreign key on [Restaurante_usuario_id] in table 'ServicioXRestaurante'
ALTER TABLE [GGastro].[ServicioXRestaurante]
ADD CONSTRAINT [FK_ServicioXRestaurante_Restaurante]
    FOREIGN KEY ([Restaurante_usuario_id])
    REFERENCES [GGastro].[Usuario_Restaurante]
        ([usuario_id])
    ON DELETE NO ACTION ON UPDATE NO ACTION;
GO

-- Creating foreign key on [Servicio_servicio_id] in table 'ServicioXRestaurante'
ALTER TABLE [GGastro].[ServicioXRestaurante]
ADD CONSTRAINT [FK_ServicioXRestaurante_Servicio]
    FOREIGN KEY ([Servicio_servicio_id])
    REFERENCES [GGastro].[Servicio]
        ([servicio_id])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_ServicioXRestaurante_Servicio'
CREATE INDEX [IX_FK_ServicioXRestaurante_Servicio]
ON [GGastro].[ServicioXRestaurante]
    ([Servicio_servicio_id]);
GO

-- Creating foreign key on [ciudad_id] in table 'Usuario_Restaurante'
ALTER TABLE [GGastro].[Usuario_Restaurante]
ADD CONSTRAINT [FK_RestauranteCiudad]
    FOREIGN KEY ([ciudad_id])
    REFERENCES [GGastro].[Ciudad]
        ([ciudad_id])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_RestauranteCiudad'
CREATE INDEX [IX_FK_RestauranteCiudad]
ON [GGastro].[Usuario_Restaurante]
    ([ciudad_id]);
GO

-- Creating foreign key on [ciudad_id] in table 'Zona'
ALTER TABLE [GGastro].[Zona]
ADD CONSTRAINT [FK_CiudadZona]
    FOREIGN KEY ([ciudad_id])
    REFERENCES [GGastro].[Ciudad]
        ([ciudad_id])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_CiudadZona'
CREATE INDEX [IX_FK_CiudadZona]
ON [GGastro].[Zona]
    ([ciudad_id]);
GO

-- Creating foreign key on [TipoCocina_tipoCocina_id] in table 'TipoCocinaXRestaurante'
ALTER TABLE [GGastro].[TipoCocinaXRestaurante]
ADD CONSTRAINT [FK_TipoCocinaXRestaurante_TipoCocina]
    FOREIGN KEY ([TipoCocina_tipoCocina_id])
    REFERENCES [GGastro].[TipoCocina]
        ([tipoCocina_id])
    ON DELETE NO ACTION ON UPDATE NO ACTION;
GO

-- Creating foreign key on [Restaurante_usuario_id] in table 'TipoCocinaXRestaurante'
ALTER TABLE [GGastro].[TipoCocinaXRestaurante]
ADD CONSTRAINT [FK_TipoCocinaXRestaurante_Restaurante]
    FOREIGN KEY ([Restaurante_usuario_id])
    REFERENCES [GGastro].[Usuario_Restaurante]
        ([usuario_id])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_TipoCocinaXRestaurante_Restaurante'
CREATE INDEX [IX_FK_TipoCocinaXRestaurante_Restaurante]
ON [GGastro].[TipoCocinaXRestaurante]
    ([Restaurante_usuario_id]);
GO

-- Creating foreign key on [MedioPago_medioPago_id] in table 'MedioPagoXRestaurante'
ALTER TABLE [GGastro].[MedioPagoXRestaurante]
ADD CONSTRAINT [FK_MedioPagoXRestaurante_MedioPago]
    FOREIGN KEY ([MedioPago_medioPago_id])
    REFERENCES [GGastro].[MedioPago]
        ([medioPago_id])
    ON DELETE NO ACTION ON UPDATE NO ACTION;
GO

-- Creating foreign key on [Restaurante_usuario_id] in table 'MedioPagoXRestaurante'
ALTER TABLE [GGastro].[MedioPagoXRestaurante]
ADD CONSTRAINT [FK_MedioPagoXRestaurante_Restaurante]
    FOREIGN KEY ([Restaurante_usuario_id])
    REFERENCES [GGastro].[Usuario_Restaurante]
        ([usuario_id])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_MedioPagoXRestaurante_Restaurante'
CREATE INDEX [IX_FK_MedioPagoXRestaurante_Restaurante]
ON [GGastro].[MedioPagoXRestaurante]
    ([Restaurante_usuario_id]);
GO

-- Creating foreign key on [tipoLocal_id] in table 'Usuario_Restaurante'
ALTER TABLE [GGastro].[Usuario_Restaurante]
ADD CONSTRAINT [FK_RestauranteTipoLocal]
    FOREIGN KEY ([tipoLocal_id])
    REFERENCES [GGastro].[TipoLocal]
        ([tipoLocal_id])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_RestauranteTipoLocal'
CREATE INDEX [IX_FK_RestauranteTipoLocal]
ON [GGastro].[Usuario_Restaurante]
    ([tipoLocal_id]);
GO

-- Creating foreign key on [estado_id] in table 'Critica'
ALTER TABLE [GGastro].[Critica]
ADD CONSTRAINT [FK_CriticaEstado]
    FOREIGN KEY ([estado_id])
    REFERENCES [GGastro].[Estado]
        ([estado_id])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_CriticaEstado'
CREATE INDEX [IX_FK_CriticaEstado]
ON [GGastro].[Critica]
    ([estado_id]);
GO

-- Creating foreign key on [estado_id] in table 'Usuario'
ALTER TABLE [GGastro].[Usuario]
ADD CONSTRAINT [FK_UsuarioEstado]
    FOREIGN KEY ([estado_id])
    REFERENCES [GGastro].[Estado]
        ([estado_id])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_UsuarioEstado'
CREATE INDEX [IX_FK_UsuarioEstado]
ON [GGastro].[Usuario]
    ([estado_id]);
GO

-- Creating foreign key on [usuario_id] in table 'Critica'
ALTER TABLE [GGastro].[Critica]
ADD CONSTRAINT [FK_UsuarioConsumidorCritica]
    FOREIGN KEY ([usuario_id])
    REFERENCES [GGastro].[Usuario_UsuarioConsumidor]
        ([usuario_id])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_UsuarioConsumidorCritica'
CREATE INDEX [IX_FK_UsuarioConsumidorCritica]
ON [GGastro].[Critica]
    ([usuario_id]);
GO

-- Creating foreign key on [Solicitud_solicitud_id] in table 'Usuario_Restaurante'
ALTER TABLE [GGastro].[Usuario_Restaurante]
ADD CONSTRAINT [FK_RestauranteSolicitud]
    FOREIGN KEY ([Solicitud_solicitud_id])
    REFERENCES [GGastro].[Solicitud]
        ([solicitud_id])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_RestauranteSolicitud'
CREATE INDEX [IX_FK_RestauranteSolicitud]
ON [GGastro].[Usuario_Restaurante]
    ([Solicitud_solicitud_id]);
GO

-- Creating foreign key on [estado_id] in table 'Solicitud'
ALTER TABLE [GGastro].[Solicitud]
ADD CONSTRAINT [FK_SolicitudEstado]
    FOREIGN KEY ([estado_id])
    REFERENCES [GGastro].[Estado]
        ([estado_id])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_SolicitudEstado'
CREATE INDEX [IX_FK_SolicitudEstado]
ON [GGastro].[Solicitud]
    ([estado_id]);
GO

-- Creating foreign key on [usuario_id] in table 'Queja'
ALTER TABLE [GGastro].[Queja]
ADD CONSTRAINT [FK_QuejaRestaurante]
    FOREIGN KEY ([usuario_id])
    REFERENCES [GGastro].[Usuario_Restaurante]
        ([usuario_id])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_QuejaRestaurante'
CREATE INDEX [IX_FK_QuejaRestaurante]
ON [GGastro].[Queja]
    ([usuario_id]);
GO

-- Creating foreign key on [Queja_queja_id] in table 'Critica'
ALTER TABLE [GGastro].[Critica]
ADD CONSTRAINT [FK_CriticaQueja]
    FOREIGN KEY ([Queja_queja_id])
    REFERENCES [GGastro].[Queja]
        ([queja_id])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_CriticaQueja'
CREATE INDEX [IX_FK_CriticaQueja]
ON [GGastro].[Critica]
    ([Queja_queja_id]);
GO

-- Creating foreign key on [justificacion] in table 'Queja'
ALTER TABLE [GGastro].[Queja]
ADD CONSTRAINT [FK_QuejaEstado]
    FOREIGN KEY ([justificacion])
    REFERENCES [GGastro].[Estado]
        ([estado_id])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_QuejaEstado'
CREATE INDEX [IX_FK_QuejaEstado]
ON [GGastro].[Queja]
    ([justificacion]);
GO

-- Creating foreign key on [Perfil_perfil_id] in table 'PerfilPrivilegio'
ALTER TABLE [GGastro].[PerfilPrivilegio]
ADD CONSTRAINT [FK_PerfilPrivilegio_Perfil]
    FOREIGN KEY ([Perfil_perfil_id])
    REFERENCES [GGastro].[PerfilEstablecer]
        ([perfil_id])
    ON DELETE NO ACTION ON UPDATE NO ACTION;
GO

-- Creating foreign key on [Privilegio_privilegio_id] in table 'PerfilPrivilegio'
ALTER TABLE [GGastro].[PerfilPrivilegio]
ADD CONSTRAINT [FK_PerfilPrivilegio_Privilegio]
    FOREIGN KEY ([Privilegio_privilegio_id])
    REFERENCES [GGastro].[PrivilegioEstablecer]
        ([privilegio_id])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_PerfilPrivilegio_Privilegio'
CREATE INDEX [IX_FK_PerfilPrivilegio_Privilegio]
ON [GGastro].[PerfilPrivilegio]
    ([Privilegio_privilegio_id]);
GO

-- Creating foreign key on [perfil_id] in table 'Usuario_UsuarioAdministrador'
ALTER TABLE [GGastro].[Usuario_UsuarioAdministrador]
ADD CONSTRAINT [FK_UsuarioAdministradorPerfil]
    FOREIGN KEY ([perfil_id])
    REFERENCES [GGastro].[PerfilEstablecer]
        ([perfil_id])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_UsuarioAdministradorPerfil'
CREATE INDEX [IX_FK_UsuarioAdministradorPerfil]
ON [GGastro].[Usuario_UsuarioAdministrador]
    ([perfil_id]);
GO

-- Creating foreign key on [usuario_id] in table 'Usuario_Restaurante'
ALTER TABLE [GGastro].[Usuario_Restaurante]
ADD CONSTRAINT [FK_Restaurante_inherits_Usuario]
    FOREIGN KEY ([usuario_id])
    REFERENCES [GGastro].[Usuario]
        ([usuario_id])
    ON DELETE NO ACTION ON UPDATE NO ACTION;
GO

-- Creating foreign key on [usuario_id] in table 'Usuario_UsuarioConsumidor'
ALTER TABLE [GGastro].[Usuario_UsuarioConsumidor]
ADD CONSTRAINT [FK_UsuarioConsumidor_inherits_Usuario]
    FOREIGN KEY ([usuario_id])
    REFERENCES [GGastro].[Usuario]
        ([usuario_id])
    ON DELETE NO ACTION ON UPDATE NO ACTION;
GO

-- Creating foreign key on [usuario_id] in table 'Usuario_UsuarioAdministrador'
ALTER TABLE [GGastro].[Usuario_UsuarioAdministrador]
ADD CONSTRAINT [FK_UsuarioAdministrador_inherits_Usuario]
    FOREIGN KEY ([usuario_id])
    REFERENCES [GGastro].[Usuario]
        ([usuario_id])
    ON DELETE NO ACTION ON UPDATE NO ACTION;
GO

-- --------------------------------------------------
-- Script has ended
-- --------------------------------------------------